

//
//  HMStatusListViewModel.swift
//  Weibo
//
//  Created by 李学林 on 15/12/10.
//  Copyright © 2015年 tete. All rights reserved.
//

import UIKit

class HMStatusListViewModel: NSObject {
    
    var statusList: [HMStatusViewModel]?
    
func loadData(isPullUp:Bool,complete:(isSuccess: Bool ,count: Int)->()){
        
    var maxId = isPullUp == true ? (statusList?.last?.status?.id ?? 0) :0
        
        if maxId > 0{
            maxId -= 1
        }
        
        // 下拉刷新用的 sinceId
    let sinceId = isPullUp == true ? 0 : (statusList?.first?.status?.id ?? 0)
        

        // 这个方法的调用是用来请求首页相关的信息的
        NetworkTools.shareManager.loadStatus(HMWBUserInfoViewModel.sharedAccount.accessToken!,sinceId:sinceId,maxid: maxId) { (response, error) -> () in
            if error != nil{
                printLog(error)
                printLog("请求错误")
                complete(isSuccess: false,count: 0)
                return
            }
            
            guard let result = response as? [String: AnyObject] else {
                printLog("结果不是字典")
                return
            }
            // 到这里就表明请求到得数据是一个字典
            guard let statusDicts = result["statuses"] as? [[String: AnyObject]] else{
                printLog("没有statuses");
                return
            }
            
            // 执行到这里代表获取到我们想要的东西了
            var tempArray = [HMStatusViewModel]()
            
            for value in statusDicts{
                
                let status = HMStatus(dict: value)
                
                tempArray.append(HMStatusViewModel(status: status))
    
                }
            
//            printLog("加载回来的数量\(tempArray.count)")
            if self.statusList == nil {
                self.statusList = [HMStatusViewModel]()
            }
            
            // 如果是上拉加载
            if isPullUp {
                // 拼接到数组的后面
                self.statusList = self.statusList! + tempArray
            }else{
                // 拼接到数组的前面
                self.statusList = tempArray + self.statusList!
            }
            
            complete(isSuccess: true,count: tempArray.count)
            

            
        }
    }




}
